printf("0 & 0 is %d\n", 0 & 0)后面的&是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:34:19
#include <stdio.h>

void main ()
{
printf("0 & 0 is %d\n", 0 & 0);
printf("0 & 1 is %d\n", 0 & 1);
printf("1 & 1 is %d\n", 1 & 1);
printf("1 & 2 is %d\n", 1 & 2);
printf("15 & 127 is %d\n", 15 & 127);
}
运行结果是
0 & 0 is 0
0 & 1 is 0
1 & 1 is 1
1 & 2 is 0
15 & 127 15

其中printf中的&是什么意思啊?搞不懂,请高人帮忙,谢谢了!

&:位操作,不同于&&,&是按照二进制一位一位的做运算(同为1为1,其余为0)
0&0 相当于二进制0000 0000 &0000 0000=0000 0000=十进制中的0
0&1 相当于二进制0000 0000 &0000 0001=0000 0000=十进制中的0
1&1 相当于二进制0000 0001 &0000 0001=0000 0001=十进制中的1
15&127 相当于二进制0000 1111 &0111 1111=0000 1111=十进制中的15

例如:15&127
0000 1111
0111 1111
————————
0000 1111 (同为1,才为1,不然都为0)

&是一个字符,打印这个字符。

&是取地址运算符。

举个例子,printf()函数的的第二个参数 15 & 127 在机器中执行是按下列处理的,0001111&1111111,其中 0 & 1=0,1 & 1=1,,所以其结果是1111,按十进制(%d)打印结果就是15,所以运行结果中最后一行就是15 & 127 is 15,注意:& 是位运算符,不是逻辑运算符(&&)

printf中的&是一个字符,打印这个字符。

&是位运算符,与操作。就是将这两个数用二进制表示出来,如果对应位均为1,则结果的此位为1,否则为0